Leadtools.ImageProcessing.Core Send comments on this topic. | Back to Introduction - All Topics | Help Version 15.12.10
WindowLevelCommand Constructor(Int32,Int32,RasterColor[],RasterByteOrder)
See Also  Example
Leadtools.ImageProcessing.Core Namespace > WindowLevelCommand Class > WindowLevelCommand Constructor : WindowLevelCommand Constructor(Int32,Int32,RasterColor[],RasterByteOrder)




lowBit
Value indicating the low bit used for leveling. 0 <= lowBit <= highBit <= (11 for 12-bit grayscale or 15 for 16-bit grayscale).
highBit
Value indicating the high bit used for leveling. 0 <= lowBit <= highBit <= (11 for 12-bit grayscale or 15 for 16-bit grayscale).
lookupTable
Optional lookup table that can be used to implement a user defined conversion. For every intensity value between 0 and 2 raised to the power of (highBit - lowBit + 1) - 1 there should be a corresponding entry in the lookup table that contains an RGB quad. If lookupTable is null, the conversion is a normal shift (right or left) and the output image is 8-bit grayscale. If lookupTable is not null, the output image is a 24-bit image.
order
Value indicating the color order if the output image will be 24-bit. If LookupTable is null, this parameter is ignored.
Initializes a new WindowLevelCommand class object with explicit parameters.

Syntax

Visual Basic (Declaration) 
Public Function New( _
   ByVal lowBit As Integer, _
   ByVal highBit As Integer, _
   ByVal lookupTable() As RasterColor, _
   ByVal order As RasterByteOrder _
)
Visual Basic (Usage)Copy Code
Dim lowBit As Integer
Dim highBit As Integer
Dim lookupTable() As RasterColor
Dim order As RasterByteOrder
 
Dim instance As WindowLevelCommand(lowBit, highBit, lookupTable, order)
C# 
public WindowLevelCommand( 
   int lowBit,
   int highBit,
   RasterColor[] lookupTable,
   RasterByteOrder order
)
Managed Extensions for C++ 
public: WindowLevelCommand( 
   int lowBit,
   int highBit,
   RasterColor[] lookupTable,
   RasterByteOrder order
)
C++/CLI 
public:
WindowLevelCommand( 
   int lowBit,
   int highBit,
   array<RasterColor> lookupTable,
   RasterByteOrder order
)

Parameters

lowBit
Value indicating the low bit used for leveling. 0 <= lowBit <= highBit <= (11 for 12-bit grayscale or 15 for 16-bit grayscale).
highBit
Value indicating the high bit used for leveling. 0 <= lowBit <= highBit <= (11 for 12-bit grayscale or 15 for 16-bit grayscale).
lookupTable
Optional lookup table that can be used to implement a user defined conversion. For every intensity value between 0 and 2 raised to the power of (highBit - lowBit + 1) - 1 there should be a corresponding entry in the lookup table that contains an RGB quad. If lookupTable is null, the conversion is a normal shift (right or left) and the output image is 8-bit grayscale. If lookupTable is not null, the output image is a 24-bit image.
order
Value indicating the color order if the output image will be 24-bit. If LookupTable is null, this parameter is ignored.

Example

Visual BasicCopy Code
ImageProcessing.Core.WindowLevelCommand.WindowLevelConstructor
   Public Sub WindowLevelConstructorExample()
      RasterCodecs.Startup()
      Dim codecs As New RasterCodecs()
      codecs.ThrowExceptionsOnInvalidImages = True

      Dim leadImage As RasterImage = codecs.Load("C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\Master.jpg")

      ' Prepare the command
      'Change the image to 16-bit grayscale
      Dim graycommand As GrayscaleCommand = New GrayscaleCommand(16)
      graycommand.Run(leadImage)

      Dim MinMaxBits As MinMaxBitsCommand = New MinMaxBitsCommand
      MinMaxBits.Run(leadImage)

      Dim MinMaxValues As MinMaxValuesCommand = New MinMaxValuesCommand
      MinMaxValues.Run(leadImage)

      Dim Size As Integer = (1 << (MinMaxBits.MaximumBit - MinMaxBits.MinimumBit + 1))
      Dim LookupTable() As RasterColor
      ReDim LookupTable(Size - 1)
      ' fill the first half of the LookupTable with RED.
      Dim x As Integer
      For x = 0 To (Size \ 2 - 1)
         LookupTable(x) = New RasterColor(255, 0, 0)
      Next
      ' fill the rest with gray values.
      For x = Size \ 2 To Size - 1
         Dim y As Byte = CType((x) * 255 / (Size), Byte)
         LookupTable(x) = New RasterColor(y, y, y)
      Next

      Dim command As WindowLevelCommand = New WindowLevelCommand(MinMaxBits.MinimumBit, MinMaxBits.MaximumBit, LookupTable, RasterByteOrder.Bgr)
      command.Run(leadImage)

      RasterCodecs.Shutdown()
   End Sub
C#Copy Code
ImageProcessing.Core.WindowLevelCommand.WindowLevelConstructor 
      public void WindowLevelConstructorExample() 
      { 
         // Load an image 
         RasterCodecs.Startup(); 
         RasterCodecs codecs = new RasterCodecs(); 
         codecs.ThrowExceptionsOnInvalidImages = true; 
 
         RasterImage image = codecs.Load(@"C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\Master.jpg"); 
 
         // Prepare the command 
         //Change the image to 16-bit grayscale 
         GrayscaleCommand graycommand = new GrayscaleCommand(16); 
         graycommand.Run(image); 
 
         MinMaxBitsCommand MinMaxBits = new MinMaxBitsCommand(); 
         MinMaxBits.Run(image); 
 
         MinMaxValuesCommand MinMaxValues = new MinMaxValuesCommand(); 
         MinMaxValues.Run(image); 
 
         int Size = (1 <<(MinMaxBits.MaximumBit - MinMaxBits.MinimumBit + 1)); 
         RasterColor [] LookupTable = new RasterColor[Size]; 
 
         // fill the first half of the LookupTable with RED. 
         for(int x = 0; x < Size / 2; x++) 
            LookupTable[x] = new RasterColor(255, 0, 0); 
 
         // fill the rest with gray values. 
         for(int x = Size / 2; x < Size; x++) 
         { 
            byte y = (byte)((x - MinMaxValues.MinimumValue) * 255 / (MinMaxValues.MaximumValue - MinMaxValues.MinimumValue)); 
            LookupTable[x] = new RasterColor(y, y, y); 
         } 
 
         WindowLevelCommand command = new WindowLevelCommand(MinMaxBits.MinimumBit, MinMaxBits.MaximumBit, LookupTable, RasterByteOrder.Bgr); 
 
         command.Run(image); 
 
         RasterCodecs.Shutdown(); 
      }

Requirements

Target Platforms: Microsoft .NET Framework 2.0, Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also